<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Faiss: faiss Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Faiss
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
      <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">faiss Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1AutoTuneCriterion.html">AutoTuneCriterion</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1OneRecallAtRCriterion.html">OneRecallAtRCriterion</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IntersectionCriterion.html">IntersectionCriterion</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1OperatingPoint.html">OperatingPoint</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1OperatingPoints.html">OperatingPoints</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ParameterRange.html">ParameterRange</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">possible values of a parameter, sorted from least to most expensive/accurate  <a href="structfaiss_1_1ParameterRange.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ParameterSpace.html">ParameterSpace</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1MatrixStats.html">MatrixStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RangeSearchResult.html">RangeSearchResult</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IDSelector.html">IDSelector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IDSelectorRange.html">IDSelectorRange</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IDSelectorBatch.html">IDSelectorBatch</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1BufferList.html">BufferList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RangeQueryResult.html">RangeQueryResult</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">result structure for a single query  <a href="structfaiss_1_1RangeQueryResult.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RangeSearchPartialResult.html">RangeSearchPartialResult</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">the entries in the buffers are split per query  <a href="structfaiss_1_1RangeSearchPartialResult.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IOReader.html">IOReader</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1VectorIOReader.html">VectorIOReader</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1VectorIOWriter.html">VectorIOWriter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1DistanceComputer.html">DistanceComputer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1InterruptCallback.html">InterruptCallback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ClusteringParameters.html">ClusteringParameters</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Clustering.html">Clustering</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1FaissException.html">FaissException</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for Faiss exceptions.  <a href="classfaiss_1_1FaissException.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ScopeDeleter.html">ScopeDeleter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ScopeDeleter1.html">ScopeDeleter1</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer4.html">HammingComputer4</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer8.html">HammingComputer8</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer16.html">HammingComputer16</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer20.html">HammingComputer20</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer32.html">HammingComputer32</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer64.html">HammingComputer64</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputerDefault.html">HammingComputerDefault</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputerM8.html">HammingComputerM8</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputerM4.html">HammingComputerM4</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HammingComputer.html">HammingComputer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1GenHammingComputer8.html">GenHammingComputer8</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1GenHammingComputer16.html">GenHammingComputer16</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1GenHammingComputer32.html">GenHammingComputer32</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1GenHammingComputerM8.html">GenHammingComputerM8</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HCounterState.html">HCounterState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1CMax.html">CMax</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1CMin.html">CMin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HeapArray.html">HeapArray</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HNSW.html">HNSW</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1VisitedTable.html">VisitedTable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">set implementation optimized for fast access.  <a href="structfaiss_1_1VisitedTable.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HNSWStats.html">HNSWStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Index.html">Index</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ScopeFileCloser.html">ScopeFileCloser</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Cloner.html">Cloner</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexBinaryFlat.html">IndexBinaryFlat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexBinaryFromFloat.html">IndexBinaryFromFloat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexBinaryHNSW.html">IndexBinaryHNSW</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexBinaryIVF.html">IndexBinaryIVF</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1BinaryInvertedListScanner.html">BinaryInvertedListScanner</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexFlat.html">IndexFlat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexFlatIP.html">IndexFlatIP</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexFlatL2.html">IndexFlatL2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexFlatL2BaseShift.html">IndexFlatL2BaseShift</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexRefineFlat.html">IndexRefineFlat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexFlat1D.html">IndexFlat1D</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">optimized version for 1D "vectors"  <a href="structfaiss_1_1IndexFlat1D.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ReconstructFromNeighbors.html">ReconstructFromNeighbors</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexHNSW.html">IndexHNSW</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexHNSWFlat.html">IndexHNSWFlat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexHNSWPQ.html">IndexHNSWPQ</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexHNSWSQ.html">IndexHNSWSQ</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexHNSW2Level.html">IndexHNSW2Level</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Level1Quantizer.html">Level1Quantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IVFSearchParameters.html">IVFSearchParameters</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVF.html">IndexIVF</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1InvertedListScanner.html">InvertedListScanner</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFStats.html">IndexIVFStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFFlat.html">IndexIVFFlat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFFlatDedup.html">IndexIVFFlatDedup</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1CodeCmp.html">CodeCmp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IVFPQSearchParameters.html">IVFPQSearchParameters</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFPQ.html">IndexIVFPQ</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFPQStats.html">IndexIVFPQStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFPQR.html">IndexIVFPQR</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Index2Layer.html">Index2Layer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFSpectralHash.html">IndexIVFSpectralHash</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexLSH.html">IndexLSH</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexPQ.html">IndexPQ</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexPQStats.html">IndexPQStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1MultiIndexQuantizer.html">MultiIndexQuantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1MultiIndexQuantizer2.html">MultiIndexQuantizer2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1IndexReplicasTemplate.html">IndexReplicasTemplate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1SQDistanceComputer.html">SQDistanceComputer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ScalarQuantizer.html">ScalarQuantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexScalarQuantizer.html">IndexScalarQuantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html">IndexIVFScalarQuantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexShardsTemplate.html">IndexShardsTemplate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1InvertedLists.html">InvertedLists</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ArrayInvertedLists.html">ArrayInvertedLists</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">simple (default) implementation as an array of inverted lists  <a href="structfaiss_1_1ArrayInvertedLists.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ReadOnlyInvertedLists.html">ReadOnlyInvertedLists</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1HStackInvertedLists.html">HStackInvertedLists</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Horizontal stack of inverted lists.  <a href="structfaiss_1_1HStackInvertedLists.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1SliceInvertedLists.html">SliceInvertedLists</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">vertical slice of indexes in another <a class="el" href="structfaiss_1_1InvertedLists.html">InvertedLists</a>  <a href="structfaiss_1_1SliceInvertedLists.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1VStackInvertedLists.html">VStackInvertedLists</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1MaskedInvertedLists.html">MaskedInvertedLists</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIDMap.html">IndexIDMap</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexIDMap2.html">IndexIDMap2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexSplitVectors.html">IndexSplitVectors</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1LockLevels.html">LockLevels</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1OnDiskInvertedLists.html">OnDiskInvertedLists</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1Score3Computer.html">Score3Computer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndirectSort.html">IndirectSort</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RankingScore2.html">RankingScore2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1SimulatedAnnealingParameters.html">SimulatedAnnealingParameters</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">parameters used for the simulated annealing method  <a href="structfaiss_1_1SimulatedAnnealingParameters.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1PermutationObjective.html">PermutationObjective</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">abstract class for the loss function  <a href="structfaiss_1_1PermutationObjective.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ReproduceDistancesObjective.html">ReproduceDistancesObjective</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1SimulatedAnnealingOptimizer.html">SimulatedAnnealingOptimizer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulated annealing optimization algorithm for permutations.  <a href="structfaiss_1_1SimulatedAnnealingOptimizer.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1PolysemousTraining.html">PolysemousTraining</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">optimizes the order of indices in a <a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a>  <a href="structfaiss_1_1PolysemousTraining.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1ThreadedIndex.html">ThreadedIndex</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1NopDistanceCorrection.html">NopDistanceCorrection</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1BaseShiftDistanceCorrection.html">BaseShiftDistanceCorrection</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RandomGenerator.html">RandomGenerator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">random generator that can be used in multithreaded contexts  <a href="structfaiss_1_1RandomGenerator.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1VectorTransform.html">VectorTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1LinearTransform.html">LinearTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RandomRotationMatrix.html">RandomRotationMatrix</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Randomly rotate a set of vectors.  <a href="structfaiss_1_1RandomRotationMatrix.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1PCAMatrix.html">PCAMatrix</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1OPQMatrix.html">OPQMatrix</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1RemapDimensionsTransform.html">RemapDimensionsTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1NormalizationTransform.html">NormalizationTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1CenteringTransform.html">CenteringTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfaiss_1_1IndexPreTransform.html">IndexPreTransform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1WorkerThread.html">WorkerThread</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ab1048e8626c8177397ec0c90109f60f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1048e8626c8177397ec0c90109f60f8"></a>
typedef <a class="el" href="structfaiss_1_1HeapArray.html">HeapArray</a>&lt; <a class="el" href="structfaiss_1_1CMin.html">CMin</a>&lt; float, <br class="typebreak"/>
long &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>float_minheap_array_t</b></td></tr>
<tr class="separator:ab1048e8626c8177397ec0c90109f60f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94a5e78e82662bd4c077aeac092b2502"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94a5e78e82662bd4c077aeac092b2502"></a>
typedef <a class="el" href="structfaiss_1_1HeapArray.html">HeapArray</a>&lt; <a class="el" href="structfaiss_1_1CMin.html">CMin</a>&lt; int, <br class="typebreak"/>
long &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>int_minheap_array_t</b></td></tr>
<tr class="separator:a94a5e78e82662bd4c077aeac092b2502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e7691e2264000b90e81dd00c8b2a331"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e7691e2264000b90e81dd00c8b2a331"></a>
typedef <a class="el" href="structfaiss_1_1HeapArray.html">HeapArray</a>&lt; <a class="el" href="structfaiss_1_1CMax.html">CMax</a>&lt; float, <br class="typebreak"/>
long &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>float_maxheap_array_t</b></td></tr>
<tr class="separator:a9e7691e2264000b90e81dd00c8b2a331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca6dab2ebae3c66f1bc2bfe5c194a7ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca6dab2ebae3c66f1bc2bfe5c194a7ae"></a>
typedef <a class="el" href="structfaiss_1_1HeapArray.html">HeapArray</a>&lt; <a class="el" href="structfaiss_1_1CMax.html">CMax</a>&lt; int, <br class="typebreak"/>
long &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>int_maxheap_array_t</b></td></tr>
<tr class="separator:aca6dab2ebae3c66f1bc2bfe5c194a7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae883ece8e4f356e208b60710888fe368"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae883ece8e4f356e208b60710888fe368"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>idx_t</b> = <a class="el" href="structfaiss_1_1Index.html#ad3f0d3071f987baabbdd3da4500c87ea">Index::idx_t</a></td></tr>
<tr class="separator:ae883ece8e4f356e208b60710888fe368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ce33e659fbac0b9228586f25fddb425"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ce33e659fbac0b9228586f25fddb425"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>MinimaxHeap</b> = <a class="el" href="structfaiss_1_1HNSW_1_1MinimaxHeap.html">HNSW::MinimaxHeap</a></td></tr>
<tr class="separator:a2ce33e659fbac0b9228586f25fddb425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c1913dbfdb987e248e65e463893cae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57c1913dbfdb987e248e65e463893cae"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>storage_idx_t</b> = <a class="el" href="structfaiss_1_1HNSW.html#ae1342fc2f07c325598a73b733e88ee74">HNSW::storage_idx_t</a></td></tr>
<tr class="separator:a57c1913dbfdb987e248e65e463893cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1a2cf238eb66402368dfceb7a9e856"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade1a2cf238eb66402368dfceb7a9e856"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>NodeDistCloser</b> = <a class="el" href="structfaiss_1_1HNSW_1_1NodeDistCloser.html">HNSW::NodeDistCloser</a></td></tr>
<tr class="separator:ade1a2cf238eb66402368dfceb7a9e856"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c7221ab68306665eb415c9ed81f40d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c7221ab68306665eb415c9ed81f40d2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>NodeDistFarther</b> = <a class="el" href="structfaiss_1_1HNSW_1_1NodeDistFarther.html">HNSW::NodeDistFarther</a></td></tr>
<tr class="separator:a8c7221ab68306665eb415c9ed81f40d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95be93c94ec2348cb4c90d35312f2a00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95be93c94ec2348cb4c90d35312f2a00"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedIds</b> = <a class="el" href="structfaiss_1_1InvertedLists_1_1ScopedIds.html">InvertedLists::ScopedIds</a></td></tr>
<tr class="separator:a95be93c94ec2348cb4c90d35312f2a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a4cb2bd87f256fcc0b430d19a12216f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a4cb2bd87f256fcc0b430d19a12216f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedCodes</b> = <a class="el" href="structfaiss_1_1InvertedLists_1_1ScopedCodes.html">InvertedLists::ScopedCodes</a></td></tr>
<tr class="separator:a6a4cb2bd87f256fcc0b430d19a12216f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3735e1903da947aaa2d79389d4ddfd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3735e1903da947aaa2d79389d4ddfd0"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>IndexReplicas</b> = <a class="el" href="classfaiss_1_1IndexReplicasTemplate.html">IndexReplicasTemplate</a>&lt; <a class="el" href="structfaiss_1_1Index.html">Index</a> &gt;</td></tr>
<tr class="separator:af3735e1903da947aaa2d79389d4ddfd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08035b3de4260d681099add5203fc045"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08035b3de4260d681099add5203fc045"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>IndexBinaryReplicas</b> = <a class="el" href="classfaiss_1_1IndexReplicasTemplate.html">IndexReplicasTemplate</a>&lt; <a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> &gt;</td></tr>
<tr class="separator:a08035b3de4260d681099add5203fc045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4027ffe4b83be8ed0ad09c287853d17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4027ffe4b83be8ed0ad09c287853d17"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>IndexShards</b> = <a class="el" href="structfaiss_1_1IndexShardsTemplate.html">IndexShardsTemplate</a>&lt; <a class="el" href="structfaiss_1_1Index.html">Index</a> &gt;</td></tr>
<tr class="separator:aa4027ffe4b83be8ed0ad09c287853d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e3dccddbd9b1cbe722804bbb9b2fa99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e3dccddbd9b1cbe722804bbb9b2fa99"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>IndexBinaryShards</b> = <a class="el" href="structfaiss_1_1IndexShardsTemplate.html">IndexShardsTemplate</a>&lt; <a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> &gt;</td></tr>
<tr class="separator:a1e3dccddbd9b1cbe722804bbb9b2fa99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e5511ff3f78bfcab1530a6f215846c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e5511ff3f78bfcab1530a6f215846c6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ConcatenatedInvertedLists</b> = <a class="el" href="structfaiss_1_1HStackInvertedLists.html">HStackInvertedLists</a></td></tr>
<tr class="separator:a6e5511ff3f78bfcab1530a6f215846c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:afd12191c638da74760ff397cf319752c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">MetricType</a> { <b>METRIC_INNER_PRODUCT</b> = 0, 
<b>METRIC_L2</b> = 1
 }</td></tr>
<tr class="memdesc:afd12191c638da74760ff397cf319752c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Some algorithms support both an inner product version and a L2 search version. <br/></td></tr>
<tr class="separator:afd12191c638da74760ff397cf319752c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0c95ec47726f2ce3fb668dcb1f9a3317"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfaiss_1_1Index.html">Index</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a0c95ec47726f2ce3fb668dcb1f9a3317">index_factory</a> (int d, const char *description_in, <a class="el" href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">MetricType</a> metric)</td></tr>
<tr class="separator:a0c95ec47726f2ce3fb668dcb1f9a3317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb54e49cab9467f117b131f803c583b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb54e49cab9467f117b131f803c583b6"></a>
<a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>index_binary_factory</b> (int d, const char *description)</td></tr>
<tr class="separator:adb54e49cab9467f117b131f803c583b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38bd0dde8a1b229201a5fcb64d05daa6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a38bd0dde8a1b229201a5fcb64d05daa6">kmeans_clustering</a> (size_t d, size_t n, size_t k, const float *x, float *centroids)</td></tr>
<tr class="separator:a38bd0dde8a1b229201a5fcb64d05daa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a542cf4d499962a3d7a0db924424d8870"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a542cf4d499962a3d7a0db924424d8870">handleExceptions</a> (std::vector&lt; std::pair&lt; int, std::exception_ptr &gt;&gt; &amp;exceptions)</td></tr>
<tr class="separator:a542cf4d499962a3d7a0db924424d8870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ae1b2a404a4f618609a5b87eecc344b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6ae1b2a404a4f618609a5b87eecc344b"></a>
template&lt;size_t nbits, typename T &gt; </td></tr>
<tr class="memitem:a6ae1b2a404a4f618609a5b87eecc344b"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming</b> (const uint8_t *bs1, const uint8_t *bs2)</td></tr>
<tr class="separator:a6ae1b2a404a4f618609a5b87eecc344b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a866a1991153d86e11e93d22b1567d578"><td class="memTemplParams" colspan="2"><a class="anchor" id="a866a1991153d86e11e93d22b1567d578"></a>
template&lt;size_t nbits&gt; </td></tr>
<tr class="memitem:a866a1991153d86e11e93d22b1567d578"><td class="memTemplItemLeft" align="right" valign="top">hamdis_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming</b> (const uint64_t *bs1, const uint64_t *bs2)</td></tr>
<tr class="separator:a866a1991153d86e11e93d22b1567d578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a020c4142c2661fa5387255c73e1b3510"><td class="memTemplParams" colspan="2"><a class="anchor" id="a020c4142c2661fa5387255c73e1b3510"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a020c4142c2661fa5387255c73e1b3510"><td class="memTemplItemLeft" align="right" valign="top">hamdis_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming&lt; 64 &gt;</b> (const uint64_t *pa, const uint64_t *pb)</td></tr>
<tr class="separator:a020c4142c2661fa5387255c73e1b3510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a251cd1d86f57ca5499d939d3f5ae093e"><td class="memTemplParams" colspan="2"><a class="anchor" id="a251cd1d86f57ca5499d939d3f5ae093e"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a251cd1d86f57ca5499d939d3f5ae093e"><td class="memTemplItemLeft" align="right" valign="top">hamdis_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming&lt; 128 &gt;</b> (const uint64_t *pa, const uint64_t *pb)</td></tr>
<tr class="separator:a251cd1d86f57ca5499d939d3f5ae093e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d4176559a9c361225a047c03f62d648"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8d4176559a9c361225a047c03f62d648"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a8d4176559a9c361225a047c03f62d648"><td class="memTemplItemLeft" align="right" valign="top">hamdis_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming&lt; 256 &gt;</b> (const uint64_t *pa, const uint64_t *pb)</td></tr>
<tr class="separator:a8d4176559a9c361225a047c03f62d648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af860acfd5b9adbb6a50d4b458d0df8b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af860acfd5b9adbb6a50d4b458d0df8b7"></a>
hamdis_t&#160;</td><td class="memItemRight" valign="bottom"><b>hamming</b> (const uint64_t *bs1, const uint64_t *bs2, size_t nwords)</td></tr>
<tr class="separator:af860acfd5b9adbb6a50d4b458d0df8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab3ff3b742c0931338befb5968b3ca3"><td class="memTemplParams" colspan="2"><a class="anchor" id="a5ab3ff3b742c0931338befb5968b3ca3"></a>
template&lt;size_t nbits&gt; </td></tr>
<tr class="memitem:a5ab3ff3b742c0931338befb5968b3ca3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hammings</b> (const uint64_t *bs1, const uint64_t *bs2, size_t n1, size_t n2, hamdis_t *dis)</td></tr>
<tr class="separator:a5ab3ff3b742c0931338befb5968b3ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8b915d9be5f42ccf53fa6bd202f0d63"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8b915d9be5f42ccf53fa6bd202f0d63"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>hammings</b> (const uint64_t *bs1, const uint64_t *bs2, size_t n1, size_t n2, size_t nwords, hamdis_t *__restrict dis)</td></tr>
<tr class="separator:ac8b915d9be5f42ccf53fa6bd202f0d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6219abead5068a666182957770f52e3"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad6219abead5068a666182957770f52e3"></a>
template&lt;size_t nbits&gt; </td></tr>
<tr class="memitem:ad6219abead5068a666182957770f52e3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>hamming_count_thres</b> (const uint64_t *bs1, const uint64_t *bs2, size_t n1, size_t n2, hamdis_t ht, size_t *nptr)</td></tr>
<tr class="separator:ad6219abead5068a666182957770f52e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbf295e8e60fc0afe10315c9b5312ded"><td class="memTemplParams" colspan="2"><a class="anchor" id="afbf295e8e60fc0afe10315c9b5312ded"></a>
template&lt;size_t nbits&gt; </td></tr>
<tr class="memitem:afbf295e8e60fc0afe10315c9b5312ded"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>crosshamming_count_thres</b> (const uint64_t *dbs, size_t n, int ht, size_t *nptr)</td></tr>
<tr class="separator:afbf295e8e60fc0afe10315c9b5312ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01762c2ee39fe30bf177d3e11eba5c38"><td class="memTemplParams" colspan="2"><a class="anchor" id="a01762c2ee39fe30bf177d3e11eba5c38"></a>
template&lt;size_t nbits&gt; </td></tr>
<tr class="memitem:a01762c2ee39fe30bf177d3e11eba5c38"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>match_hamming_thres</b> (const uint64_t *bs1, const uint64_t *bs2, size_t n1, size_t n2, int ht, long *idx, hamdis_t *hams)</td></tr>
<tr class="separator:a01762c2ee39fe30bf177d3e11eba5c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afde8c1f96d4c776b101dd67cc0064c3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afde8c1f96d4c776b101dd67cc0064c3d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec2bitvec</b> (const float *x, uint8_t *b, size_t d)</td></tr>
<tr class="separator:afde8c1f96d4c776b101dd67cc0064c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224890519ae5efe7a3c8cdf94bda60e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a224890519ae5efe7a3c8cdf94bda60e9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvecs2bitvecs</b> (const float *x, uint8_t *b, size_t d, size_t n)</td></tr>
<tr class="separator:a224890519ae5efe7a3c8cdf94bda60e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e10b0864a93653945dbd950b9fcdacf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e10b0864a93653945dbd950b9fcdacf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>bitvec_print</b> (const uint8_t *b, size_t d)</td></tr>
<tr class="separator:a0e10b0864a93653945dbd950b9fcdacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9962e3db5bf5e276950685a587b37a94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9962e3db5bf5e276950685a587b37a94"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>hammings</b> (const uint8_t *a, const uint8_t *b, size_t na, size_t nb, size_t ncodes, hamdis_t *__restrict dis)</td></tr>
<tr class="separator:a9962e3db5bf5e276950685a587b37a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0b4dc73a8470d61f510396dc460ca18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0b4dc73a8470d61f510396dc460ca18"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>hammings_knn</b> (<a class="el" href="structfaiss_1_1HeapArray.html">int_maxheap_array_t</a> *ha, const uint8_t *a, const uint8_t *b, size_t nb, size_t ncodes, int order)</td></tr>
<tr class="separator:ac0b4dc73a8470d61f510396dc460ca18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef2e95991f435b0103db0efe07edff81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#aef2e95991f435b0103db0efe07edff81">hammings_knn_hc</a> (<a class="el" href="structfaiss_1_1HeapArray.html">int_maxheap_array_t</a> *ha, const uint8_t *a, const uint8_t *b, size_t nb, size_t ncodes, int order)</td></tr>
<tr class="separator:aef2e95991f435b0103db0efe07edff81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ac586642ba474949a007546ab05592"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#aa9ac586642ba474949a007546ab05592">hammings_knn_mc</a> (const uint8_t *a, const uint8_t *b, size_t na, size_t nb, size_t k, size_t ncodes, int32_t *distances, long *labels)</td></tr>
<tr class="separator:aa9ac586642ba474949a007546ab05592"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac713458e556afa5bd612b88944292d65"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac713458e556afa5bd612b88944292d65"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>hamming_count_thres</b> (const uint8_t *bs1, const uint8_t *bs2, size_t n1, size_t n2, hamdis_t ht, size_t ncodes, size_t *nptr)</td></tr>
<tr class="separator:ac713458e556afa5bd612b88944292d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399cfe2b1a7b2e3d722e10654c164ae0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a399cfe2b1a7b2e3d722e10654c164ae0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>crosshamming_count_thres</b> (const uint8_t *dbs, size_t n, hamdis_t ht, size_t ncodes, size_t *nptr)</td></tr>
<tr class="separator:a399cfe2b1a7b2e3d722e10654c164ae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9569826dd5f45d9bbf4933877862a9fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9569826dd5f45d9bbf4933877862a9fd"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>match_hamming_thres</b> (const uint8_t *bs1, const uint8_t *bs2, size_t n1, size_t n2, hamdis_t ht, size_t ncodes, long *idx, hamdis_t *dis)</td></tr>
<tr class="separator:a9569826dd5f45d9bbf4933877862a9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c1131631ad4314ba716372fe0d1dea6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a9c1131631ad4314ba716372fe0d1dea6">generalized_hammings_knn_hc</a> (<a class="el" href="structfaiss_1_1HeapArray.html">int_maxheap_array_t</a> *ha, const uint8_t *a, const uint8_t *b, size_t nb, size_t code_size, int ordered)</td></tr>
<tr class="separator:a9c1131631ad4314ba716372fe0d1dea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d2125afc95e3417b270cb9428f8e0ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d2125afc95e3417b270cb9428f8e0ef"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>popcount64</b> (uint64_t x)</td></tr>
<tr class="separator:a7d2125afc95e3417b270cb9428f8e0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0832c5ab58f4d1a340b0bde273c5b501"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a0832c5ab58f4d1a340b0bde273c5b501">hammings</a> (const uint8_t *a, const uint8_t *b, size_t na, size_t nb, size_t nbytespercode, hamdis_t *dis)</td></tr>
<tr class="separator:a0832c5ab58f4d1a340b0bde273c5b501"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c20def47976af19292a160b2ec551d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c20def47976af19292a160b2ec551d2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (4)</td></tr>
<tr class="separator:a3c20def47976af19292a160b2ec551d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb4e4208ec84a403e02dba1b18b29840"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb4e4208ec84a403e02dba1b18b29840"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (8)</td></tr>
<tr class="separator:acb4e4208ec84a403e02dba1b18b29840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138c0f4e83d2e8b7fdd90ef895f8c6f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a138c0f4e83d2e8b7fdd90ef895f8c6f2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (16)</td></tr>
<tr class="separator:a138c0f4e83d2e8b7fdd90ef895f8c6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a965aa1292a3957feaaec0f4ed1b54f85"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a965aa1292a3957feaaec0f4ed1b54f85"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (20)</td></tr>
<tr class="separator:a965aa1292a3957feaaec0f4ed1b54f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69f0b96e4d8c59be97ee73aedafac0a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69f0b96e4d8c59be97ee73aedafac0a2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (32)</td></tr>
<tr class="separator:a69f0b96e4d8c59be97ee73aedafac0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadcee2efcbb11d2c1d284589ba12b8ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadcee2efcbb11d2c1d284589ba12b8ae"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SPECIALIZED_HC</b> (64)</td></tr>
<tr class="separator:aadcee2efcbb11d2c1d284589ba12b8ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69337e23232a204be3e1464713fee62d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69337e23232a204be3e1464713fee62d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>generalized_hamming_64</b> (uint64_t a)</td></tr>
<tr class="separator:a69337e23232a204be3e1464713fee62d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d40aec5723474516de576263cc03048"><td class="memTemplParams" colspan="2">template&lt;class C &gt; </td></tr>
<tr class="memitem:a1d40aec5723474516de576263cc03048"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a1d40aec5723474516de576263cc03048">heap_pop</a> (size_t k, typename C::T *bh_val, typename C::TI *bh_ids)</td></tr>
<tr class="separator:a1d40aec5723474516de576263cc03048"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe85976d4f73309622f6b62c4d7af2b"><td class="memTemplParams" colspan="2">template&lt;class C &gt; </td></tr>
<tr class="memitem:acbe85976d4f73309622f6b62c4d7af2b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#acbe85976d4f73309622f6b62c4d7af2b">heap_push</a> (size_t k, typename C::T *bh_val, typename C::TI *bh_ids, typename C::T val, typename C::TI ids)</td></tr>
<tr class="separator:acbe85976d4f73309622f6b62c4d7af2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7518ec4c13865a4860429899a8c96d25"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7518ec4c13865a4860429899a8c96d25"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7518ec4c13865a4860429899a8c96d25"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>minheap_pop</b> (size_t k, T *bh_val, long *bh_ids)</td></tr>
<tr class="separator:a7518ec4c13865a4860429899a8c96d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549c638312ecdb0eebed275d6fc0b08f"><td class="memTemplParams" colspan="2"><a class="anchor" id="a549c638312ecdb0eebed275d6fc0b08f"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a549c638312ecdb0eebed275d6fc0b08f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>minheap_push</b> (size_t k, T *bh_val, long *bh_ids, T val, long ids)</td></tr>
<tr class="separator:a549c638312ecdb0eebed275d6fc0b08f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1b226e3626cfdecba6db1e9ac68f18a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad1b226e3626cfdecba6db1e9ac68f18a"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad1b226e3626cfdecba6db1e9ac68f18a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>maxheap_pop</b> (size_t k, T *bh_val, long *bh_ids)</td></tr>
<tr class="separator:ad1b226e3626cfdecba6db1e9ac68f18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac905d8159b8453e3e525204c66b28aae"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac905d8159b8453e3e525204c66b28aae"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac905d8159b8453e3e525204c66b28aae"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>maxheap_push</b> (size_t k, T *bh_val, long *bh_ids, T val, long ids)</td></tr>
<tr class="separator:ac905d8159b8453e3e525204c66b28aae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8617ea308e081aed83d4a084a9d31f70"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8617ea308e081aed83d4a084a9d31f70"></a>
template&lt;class C &gt; </td></tr>
<tr class="memitem:a8617ea308e081aed83d4a084a9d31f70"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>heap_heapify</b> (size_t k, typename C::T *bh_val, typename C::TI *bh_ids, const typename C::T *x=nullptr, const typename C::TI *ids=nullptr, size_t k0=0)</td></tr>
<tr class="separator:a8617ea308e081aed83d4a084a9d31f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a099a7f4bb3ec3f961ff7084b863ee867"><td class="memTemplParams" colspan="2"><a class="anchor" id="a099a7f4bb3ec3f961ff7084b863ee867"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a099a7f4bb3ec3f961ff7084b863ee867"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>minheap_heapify</b> (size_t k, T *bh_val, long *bh_ids, const T *x=nullptr, const long *ids=nullptr, size_t k0=0)</td></tr>
<tr class="separator:a099a7f4bb3ec3f961ff7084b863ee867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f59bc94a944798de93c1315c298d6c8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4f59bc94a944798de93c1315c298d6c8"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4f59bc94a944798de93c1315c298d6c8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>maxheap_heapify</b> (size_t k, T *bh_val, long *bh_ids, const T *x=nullptr, const long *ids=nullptr, size_t k0=0)</td></tr>
<tr class="separator:a4f59bc94a944798de93c1315c298d6c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa5c2b8f24eb244fb064af0c7d853422"><td class="memTemplParams" colspan="2"><a class="anchor" id="afa5c2b8f24eb244fb064af0c7d853422"></a>
template&lt;class C &gt; </td></tr>
<tr class="memitem:afa5c2b8f24eb244fb064af0c7d853422"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>heap_addn</b> (size_t k, typename C::T *bh_val, typename C::TI *bh_ids, const typename C::T *x, const typename C::TI *ids, size_t n)</td></tr>
<tr class="separator:afa5c2b8f24eb244fb064af0c7d853422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7ba34d7d099ca3f410f9b07b633b194"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa7ba34d7d099ca3f410f9b07b633b194"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa7ba34d7d099ca3f410f9b07b633b194"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>minheap_addn</b> (size_t k, T *bh_val, long *bh_ids, const T *x, const long *ids, size_t n)</td></tr>
<tr class="separator:aa7ba34d7d099ca3f410f9b07b633b194"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e0519b23a4473f557b72cded5b73647"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4e0519b23a4473f557b72cded5b73647"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4e0519b23a4473f557b72cded5b73647"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>maxheap_addn</b> (size_t k, T *bh_val, long *bh_ids, const T *x, const long *ids, size_t n)</td></tr>
<tr class="separator:a4e0519b23a4473f557b72cded5b73647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e69334ccd78982042a6210c743d0418"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4e69334ccd78982042a6210c743d0418"></a>
template&lt;typename C &gt; </td></tr>
<tr class="memitem:a4e69334ccd78982042a6210c743d0418"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>heap_reorder</b> (size_t k, typename C::T *bh_val, typename C::TI *bh_ids)</td></tr>
<tr class="separator:a4e69334ccd78982042a6210c743d0418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9231a772f9c6a87f03162a16e49fdc61"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9231a772f9c6a87f03162a16e49fdc61"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a9231a772f9c6a87f03162a16e49fdc61"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>minheap_reorder</b> (size_t k, T *bh_val, long *bh_ids)</td></tr>
<tr class="separator:a9231a772f9c6a87f03162a16e49fdc61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb31108ab96628b124e5cd72d0183b2e"><td class="memTemplParams" colspan="2"><a class="anchor" id="adb31108ab96628b124e5cd72d0183b2e"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:adb31108ab96628b124e5cd72d0183b2e"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><b>maxheap_reorder</b> (size_t k, T *bh_val, long *bh_ids)</td></tr>
<tr class="separator:adb31108ab96628b124e5cd72d0183b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8023405f5360828c9a892510a5f4c4ec"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8023405f5360828c9a892510a5f4c4ec"></a>
template&lt;class C &gt; </td></tr>
<tr class="memitem:a8023405f5360828c9a892510a5f4c4ec"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>indirect_heap_pop</b> (size_t k, const typename C::T *bh_val, typename C::TI *bh_ids)</td></tr>
<tr class="separator:a8023405f5360828c9a892510a5f4c4ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ecaf37c77256e02a946e1572b992ed5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8ecaf37c77256e02a946e1572b992ed5"></a>
template&lt;class C &gt; </td></tr>
<tr class="memitem:a8ecaf37c77256e02a946e1572b992ed5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>indirect_heap_push</b> (size_t k, const typename C::T *bh_val, typename C::TI *bh_ids, typename C::TI id)</td></tr>
<tr class="separator:a8ecaf37c77256e02a946e1572b992ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af06ee18cec9686419b641298e3a0667e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af06ee18cec9686419b641298e3a0667e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_VectorTransform</b> (const <a class="el" href="structfaiss_1_1VectorTransform.html">VectorTransform</a> *vt, <a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a> *f)</td></tr>
<tr class="separator:af06ee18cec9686419b641298e3a0667e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbd20721104c8523bbc53d82f839b03c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbd20721104c8523bbc53d82f839b03c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_ProductQuantizer</b> (const <a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> *pq, <a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a> *f)</td></tr>
<tr class="separator:adbd20721104c8523bbc53d82f839b03c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceed566acb3d5edfa90c70198ba5d962"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aceed566acb3d5edfa90c70198ba5d962"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_InvertedLists</b> (const <a class="el" href="structfaiss_1_1InvertedLists.html">InvertedLists</a> *ils, <a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a> *f)</td></tr>
<tr class="separator:aceed566acb3d5edfa90c70198ba5d962"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeecb2752b0d13ace2d17ebc0189e9ea3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeecb2752b0d13ace2d17ebc0189e9ea3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_ProductQuantizer</b> (const <a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> *pq, const char *fname)</td></tr>
<tr class="separator:aeecb2752b0d13ace2d17ebc0189e9ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e27aa8cea95d11002d8c452d6b85ff2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e27aa8cea95d11002d8c452d6b85ff2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index</b> (const <a class="el" href="structfaiss_1_1Index.html">Index</a> *idx, <a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a> *f)</td></tr>
<tr class="separator:a6e27aa8cea95d11002d8c452d6b85ff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add675e330da6a82b27101862206de6c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add675e330da6a82b27101862206de6c2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index</b> (const <a class="el" href="structfaiss_1_1Index.html">Index</a> *idx, FILE *f)</td></tr>
<tr class="separator:add675e330da6a82b27101862206de6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa41490abaa2dad0dd2131150ed99ef8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa41490abaa2dad0dd2131150ed99ef8d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index</b> (const <a class="el" href="structfaiss_1_1Index.html">Index</a> *idx, const char *fname)</td></tr>
<tr class="separator:aa41490abaa2dad0dd2131150ed99ef8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad72efd9404a8058159f1ae48225a2d94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad72efd9404a8058159f1ae48225a2d94"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_VectorTransform</b> (const <a class="el" href="structfaiss_1_1VectorTransform.html">VectorTransform</a> *vt, const char *fname)</td></tr>
<tr class="separator:ad72efd9404a8058159f1ae48225a2d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7947aa6ec50a5232008dae4c932c6aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7947aa6ec50a5232008dae4c932c6aa"></a>
<a class="el" href="structfaiss_1_1VectorTransform.html">VectorTransform</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_VectorTransform</b> (<a class="el" href="structfaiss_1_1IOReader.html">IOReader</a> *f)</td></tr>
<tr class="separator:aa7947aa6ec50a5232008dae4c932c6aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78fdb63ab9c1307446f3ee6e2733d7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78fdb63ab9c1307446f3ee6e2733d7c8"></a>
<a class="el" href="structfaiss_1_1InvertedLists.html">InvertedLists</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_InvertedLists</b> (<a class="el" href="structfaiss_1_1IOReader.html">IOReader</a> *f, int io_flags)</td></tr>
<tr class="separator:a78fdb63ab9c1307446f3ee6e2733d7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a818fa626e2368301ccf872b7ba65383a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a818fa626e2368301ccf872b7ba65383a"></a>
<a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_ProductQuantizer</b> (const char *fname)</td></tr>
<tr class="separator:a818fa626e2368301ccf872b7ba65383a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39b1ff6a5c7baacea4002473dde1f8d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39b1ff6a5c7baacea4002473dde1f8d3"></a>
<a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_ProductQuantizer</b> (<a class="el" href="structfaiss_1_1IOReader.html">IOReader</a> *reader)</td></tr>
<tr class="separator:a39b1ff6a5c7baacea4002473dde1f8d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa794e3ac29ed3100f41963b7f38c24b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa794e3ac29ed3100f41963b7f38c24b8"></a>
<a class="el" href="structfaiss_1_1Index.html">Index</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index</b> (<a class="el" href="structfaiss_1_1IOReader.html">IOReader</a> *f, int io_flags)</td></tr>
<tr class="separator:aa794e3ac29ed3100f41963b7f38c24b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4c3e2c0e8b3f706ba46771b815526d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea4c3e2c0e8b3f706ba46771b815526d"></a>
<a class="el" href="structfaiss_1_1Index.html">Index</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index</b> (FILE *f, int io_flags)</td></tr>
<tr class="separator:aea4c3e2c0e8b3f706ba46771b815526d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac705f6f8d4ed7edc9bf3a130ef176780"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac705f6f8d4ed7edc9bf3a130ef176780"></a>
<a class="el" href="structfaiss_1_1Index.html">Index</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index</b> (const char *fname, int io_flags)</td></tr>
<tr class="separator:ac705f6f8d4ed7edc9bf3a130ef176780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e97b42d11f03a68bfda4ad5c569dd1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73e97b42d11f03a68bfda4ad5c569dd1"></a>
<a class="el" href="structfaiss_1_1VectorTransform.html">VectorTransform</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_VectorTransform</b> (const char *fname)</td></tr>
<tr class="separator:a73e97b42d11f03a68bfda4ad5c569dd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3143984f302f56032b80948ddebc62af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3143984f302f56032b80948ddebc62af"></a>
<a class="el" href="structfaiss_1_1Index.html">Index</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone_index</b> (const <a class="el" href="structfaiss_1_1Index.html">Index</a> *index)</td></tr>
<tr class="separator:a3143984f302f56032b80948ddebc62af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b6f26873e5201efe840b4f57934c33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9b6f26873e5201efe840b4f57934c33"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index_binary</b> (const <a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *idx, <a class="el" href="structfaiss_1_1IOWriter.html">IOWriter</a> *f)</td></tr>
<tr class="separator:aa9b6f26873e5201efe840b4f57934c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ac354e079e69777c2a3f4ce205372ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ac354e079e69777c2a3f4ce205372ce"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index_binary</b> (const <a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *idx, FILE *f)</td></tr>
<tr class="separator:a2ac354e079e69777c2a3f4ce205372ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61da4238a64561284de20324b93314bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61da4238a64561284de20324b93314bb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write_index_binary</b> (const <a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *idx, const char *fname)</td></tr>
<tr class="separator:a61da4238a64561284de20324b93314bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0682cfae8900b191290b48d23aa10feb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0682cfae8900b191290b48d23aa10feb"></a>
<a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index_binary</b> (<a class="el" href="structfaiss_1_1IOReader.html">IOReader</a> *f, int io_flags)</td></tr>
<tr class="separator:a0682cfae8900b191290b48d23aa10feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fe48429c4094e94f8d073f5a7c6e141"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fe48429c4094e94f8d073f5a7c6e141"></a>
<a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index_binary</b> (FILE *f, int io_flags)</td></tr>
<tr class="separator:a2fe48429c4094e94f8d073f5a7c6e141"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a07c538774dcca086d988845b37c494"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a07c538774dcca086d988845b37c494"></a>
<a class="el" href="structfaiss_1_1IndexBinary.html">IndexBinary</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>read_index_binary</b> (const char *fname, int io_flags)</td></tr>
<tr class="separator:a8a07c538774dcca086d988845b37c494"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1224ccbe0087fd6634d59b3008251b6"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad1224ccbe0087fd6634d59b3008251b6"></a>
template&lt;typename CT , class C &gt; </td></tr>
<tr class="memitem:ad1224ccbe0087fd6634d59b3008251b6"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>pq_estimators_from_tables_Mmul4</b> (int M, const CT *codes, size_t ncodes, const float *__restrict dis_table, size_t ksub, size_t k, float *heap_dis, long *heap_ids)</td></tr>
<tr class="separator:ad1224ccbe0087fd6634d59b3008251b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c00476e94f1b25bfb9cb9eee6dc320"><td class="memTemplParams" colspan="2"><a class="anchor" id="a01c00476e94f1b25bfb9cb9eee6dc320"></a>
template&lt;typename CT , class C &gt; </td></tr>
<tr class="memitem:a01c00476e94f1b25bfb9cb9eee6dc320"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>pq_estimators_from_tables_M4</b> (const CT *codes, size_t ncodes, const float *__restrict dis_table, size_t ksub, size_t k, float *heap_dis, long *heap_ids)</td></tr>
<tr class="separator:a01c00476e94f1b25bfb9cb9eee6dc320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd3fe42213f3c3ba0aba9f7c24203410"><td class="memTemplParams" colspan="2"><a class="anchor" id="abd3fe42213f3c3ba0aba9f7c24203410"></a>
template&lt;class PQEncoder &gt; </td></tr>
<tr class="memitem:abd3fe42213f3c3ba0aba9f7c24203410"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>compute_code</b> (const <a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> &amp;pq, const float *x, uint8_t *code)</td></tr>
<tr class="separator:abd3fe42213f3c3ba0aba9f7c24203410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad37bde2f3dfdc1d72f29730b997d2a4f"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad37bde2f3dfdc1d72f29730b997d2a4f"></a>
template&lt;class PQDecoder &gt; </td></tr>
<tr class="memitem:ad37bde2f3dfdc1d72f29730b997d2a4f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>decode</b> (const <a class="el" href="structfaiss_1_1ProductQuantizer.html">ProductQuantizer</a> &amp;pq, const uint8_t *code, float *x)</td></tr>
<tr class="separator:ad37bde2f3dfdc1d72f29730b997d2a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2a71f7d5402ae02ce169a4cc83020eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2a71f7d5402ae02ce169a4cc83020eb"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#af2a71f7d5402ae02ce169a4cc83020eb">getmillisecs</a> ()</td></tr>
<tr class="memdesc:af2a71f7d5402ae02ce169a4cc83020eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">ms elapsed since some arbitrary epoch <br/></td></tr>
<tr class="separator:af2a71f7d5402ae02ce169a4cc83020eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e52268bd04f91f6806c11a4fa9844af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e52268bd04f91f6806c11a4fa9844af"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>float_rand</b> (float *x, size_t n, long seed)</td></tr>
<tr class="separator:a4e52268bd04f91f6806c11a4fa9844af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a141b90397a6460c087dd685c618ccc2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a141b90397a6460c087dd685c618ccc2e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>float_randn</b> (float *x, size_t n, long seed)</td></tr>
<tr class="separator:a141b90397a6460c087dd685c618ccc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a755f31dec6ad03a39132c22e64e9efd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a755f31dec6ad03a39132c22e64e9efd7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>long_rand</b> (long *x, size_t n, long seed)</td></tr>
<tr class="separator:a755f31dec6ad03a39132c22e64e9efd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e0d986276186a6f4ae31573521cdc72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e0d986276186a6f4ae31573521cdc72"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rand_perm</b> (int *perm, size_t n, long seed)</td></tr>
<tr class="separator:a2e0d986276186a6f4ae31573521cdc72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9835f65db4dc94f35dfaa522aa09c1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9835f65db4dc94f35dfaa522aa09c1b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>byte_rand</b> (uint8_t *x, size_t n, long seed)</td></tr>
<tr class="separator:af9835f65db4dc94f35dfaa522aa09c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a416579174077c326f5e1694c04142098"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a416579174077c326f5e1694c04142098"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reflection</b> (const float *__restrict u, float *__restrict x, size_t n, size_t d, size_t nu)</td></tr>
<tr class="separator:a416579174077c326f5e1694c04142098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ed95d839d548e34fdd03f83676b633"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34ed95d839d548e34fdd03f83676b633"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reflection_ref</b> (const float *u, float *x, size_t n, size_t d, size_t nu)</td></tr>
<tr class="separator:a34ed95d839d548e34fdd03f83676b633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f0c0270de04cc395edd3d2823d0128d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f0c0270de04cc395edd3d2823d0128d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_inner_products_ny</b> (float *ip, const float *x, const float *y, size_t d, size_t ny)</td></tr>
<tr class="separator:a1f0c0270de04cc395edd3d2823d0128d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ee963ae53a231071a04335b6419a34a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ee963ae53a231071a04335b6419a34a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_norms_L2</b> (float *__restrict nr, const float *__restrict x, size_t d, size_t nx)</td></tr>
<tr class="separator:a8ee963ae53a231071a04335b6419a34a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe16f5b787a3a757b0ffd587f2b0f546"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe16f5b787a3a757b0ffd587f2b0f546"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_norms_L2sqr</b> (float *__restrict nr, const float *__restrict x, size_t d, size_t nx)</td></tr>
<tr class="separator:afe16f5b787a3a757b0ffd587f2b0f546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c4685ed77895118ae8277abe54fae8f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c4685ed77895118ae8277abe54fae8f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_renorm_L2</b> (size_t d, size_t nx, float *__restrict x)</td></tr>
<tr class="separator:a4c4685ed77895118ae8277abe54fae8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a880c7318971f866267a86945aaa61b17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a880c7318971f866267a86945aaa61b17">knn_inner_product</a> (const float *x, const float *y, size_t d, size_t nx, size_t ny, <a class="el" href="structfaiss_1_1HeapArray.html">float_minheap_array_t</a> *res)</td></tr>
<tr class="separator:a880c7318971f866267a86945aaa61b17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f803e3d3b07cfab63699c89de161237"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a2f803e3d3b07cfab63699c89de161237">knn_L2sqr</a> (const float *x, const float *y, size_t d, size_t nx, size_t ny, <a class="el" href="structfaiss_1_1HeapArray.html">float_maxheap_array_t</a> *res)</td></tr>
<tr class="separator:a2f803e3d3b07cfab63699c89de161237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eb1701e46123827966f2a56da893d1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a5eb1701e46123827966f2a56da893d1d">knn_L2sqr_base_shift</a> (const float *x, const float *y, size_t d, size_t nx, size_t ny, <a class="el" href="structfaiss_1_1HeapArray.html">float_maxheap_array_t</a> *res, const float *base_shift)</td></tr>
<tr class="separator:a5eb1701e46123827966f2a56da893d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada53442290616e25b2bbe49a1444a225"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada53442290616e25b2bbe49a1444a225"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_inner_products_by_idx</b> (float *__restrict ip, const float *x, const float *y, const long *__restrict ids, size_t d, size_t nx, size_t ny)</td></tr>
<tr class="separator:ada53442290616e25b2bbe49a1444a225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad70536e37674f21dc4f47fc130e03b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acad70536e37674f21dc4f47fc130e03b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_L2sqr_by_idx</b> (float *__restrict dis, const float *x, const float *y, const long *__restrict ids, size_t d, size_t nx, size_t ny)</td></tr>
<tr class="separator:acad70536e37674f21dc4f47fc130e03b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cede63f44a39f09ae574f98c02d71db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cede63f44a39f09ae574f98c02d71db"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>knn_inner_products_by_idx</b> (const float *x, const float *y, const long *ids, size_t d, size_t nx, size_t ny, <a class="el" href="structfaiss_1_1HeapArray.html">float_minheap_array_t</a> *res)</td></tr>
<tr class="separator:a4cede63f44a39f09ae574f98c02d71db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a705dcfc6ae950690bc14ccf3dae591b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a705dcfc6ae950690bc14ccf3dae591b8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>knn_L2sqr_by_idx</b> (const float *x, const float *y, const long *__restrict ids, size_t d, size_t nx, size_t ny, <a class="el" href="structfaiss_1_1HeapArray.html">float_maxheap_array_t</a> *res)</td></tr>
<tr class="separator:a705dcfc6ae950690bc14ccf3dae591b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1faa7bd079c9b1addf3058ddf882a000"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a1faa7bd079c9b1addf3058ddf882a000">range_search_L2sqr</a> (const float *x, const float *y, size_t d, size_t nx, size_t ny, float radius, <a class="el" href="structfaiss_1_1RangeSearchResult.html">RangeSearchResult</a> *res)</td></tr>
<tr class="separator:a1faa7bd079c9b1addf3058ddf882a000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab29d725b808df6f142b80f21aa45e507"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab29d725b808df6f142b80f21aa45e507"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#ab29d725b808df6f142b80f21aa45e507">range_search_inner_product</a> (const float *x, const float *y, size_t d, size_t nx, size_t ny, float radius, <a class="el" href="structfaiss_1_1RangeSearchResult.html">RangeSearchResult</a> *result)</td></tr>
<tr class="memdesc:ab29d725b808df6f142b80f21aa45e507"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as range_search_L2sqr for the inner product similarity <br/></td></tr>
<tr class="separator:ab29d725b808df6f142b80f21aa45e507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38c7007a07161c88fd2e40caedec3f21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38c7007a07161c88fd2e40caedec3f21"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>inner_product_to_L2sqr</b> (float *__restrict dis, const float *nr1, const float *nr2, size_t n1, size_t n2)</td></tr>
<tr class="separator:a38c7007a07161c88fd2e40caedec3f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb68fe89ad5e948974da1b70d7b4157c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#afb68fe89ad5e948974da1b70d7b4157c">matrix_qr</a> (int m, int n, float *a)</td></tr>
<tr class="separator:afb68fe89ad5e948974da1b70d7b4157c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d9c7db82d43c1f0ab1d28b92bc9fe57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a3d9c7db82d43c1f0ab1d28b92bc9fe57">pairwise_L2sqr</a> (long d, long nq, const float *xq, long nb, const float *xb, float *dis, long ldq, long ldb, long ldd)</td></tr>
<tr class="separator:a3d9c7db82d43c1f0ab1d28b92bc9fe57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c6a9e87a64bba8e8014e14f70bde21"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#aa2c6a9e87a64bba8e8014e14f70bde21">km_update_centroids</a> (const float *x, float *centroids, long *assign, size_t d, size_t k, size_t n, size_t k_frozen)</td></tr>
<tr class="separator:aa2c6a9e87a64bba8e8014e14f70bde21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0ee1b6fbd3d6da0f1a3550a780ca24c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#ae0ee1b6fbd3d6da0f1a3550a780ca24c">ranklist_handle_ties</a> (int k, long *idx, const float *dis)</td></tr>
<tr class="separator:ae0ee1b6fbd3d6da0f1a3550a780ca24c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb7b33f6892678ba79aaf5e71777837c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#afb7b33f6892678ba79aaf5e71777837c">merge_result_table_with</a> (size_t n, size_t k, long *I0, float *D0, const long *I1, const float *D1, bool keep_min, long translation)</td></tr>
<tr class="separator:afb7b33f6892678ba79aaf5e71777837c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dbc652ba48d41f126b8815004899448"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a8dbc652ba48d41f126b8815004899448">ranklist_intersection_size</a> (size_t k1, const long *v1, size_t k2, const long *v2_in)</td></tr>
<tr class="separator:a8dbc652ba48d41f126b8815004899448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94c1d99ac39d22e362aa27ce7c7ff714"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94c1d99ac39d22e362aa27ce7c7ff714"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a94c1d99ac39d22e362aa27ce7c7ff714">imbalance_factor</a> (int k, const int *hist)</td></tr>
<tr class="memdesc:a94c1d99ac39d22e362aa27ce7c7ff714"><td class="mdescLeft">&#160;</td><td class="mdescRight">same, takes a histogram as input <br/></td></tr>
<tr class="separator:a94c1d99ac39d22e362aa27ce7c7ff714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af762526714e6138009c72aee98657538"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af762526714e6138009c72aee98657538"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#af762526714e6138009c72aee98657538">imbalance_factor</a> (int n, int k, const long *assign)</td></tr>
<tr class="memdesc:af762526714e6138009c72aee98657538"><td class="mdescLeft">&#160;</td><td class="mdescRight">a balanced assignment has a IF of 1 <br/></td></tr>
<tr class="separator:af762526714e6138009c72aee98657538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bea462108bee98d8d5859b51ec4db8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bea462108bee98d8d5859b51ec4db8e"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a7bea462108bee98d8d5859b51ec4db8e">ivec_hist</a> (size_t n, const int *v, int vmax, int *hist)</td></tr>
<tr class="memdesc:a7bea462108bee98d8d5859b51ec4db8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute histogram on v <br/></td></tr>
<tr class="separator:a7bea462108bee98d8d5859b51ec4db8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a154a47857ed321b9db91122770a16e09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a154a47857ed321b9db91122770a16e09">bincode_hist</a> (size_t n, size_t nbits, const uint8_t *codes, int *hist)</td></tr>
<tr class="separator:a154a47857ed321b9db91122770a16e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4369329c9dbdfe23e3f35d09ba7b5c6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4369329c9dbdfe23e3f35d09ba7b5c6e"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a4369329c9dbdfe23e3f35d09ba7b5c6e">ivec_checksum</a> (size_t n, const int *a)</td></tr>
<tr class="memdesc:a4369329c9dbdfe23e3f35d09ba7b5c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute a checksum on a table. <br/></td></tr>
<tr class="separator:a4369329c9dbdfe23e3f35d09ba7b5c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a027b726c606d329c30840e51b539ddb4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a027b726c606d329c30840e51b539ddb4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_argsort</b> (size_t n, const float *vals, size_t *perm)</td></tr>
<tr class="separator:a027b726c606d329c30840e51b539ddb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e967dd8492dc074a7d6950d437e53a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e967dd8492dc074a7d6950d437e53a2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_argsort_parallel</b> (size_t n, const float *vals, size_t *perm)</td></tr>
<tr class="separator:a0e967dd8492dc074a7d6950d437e53a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14884d253128c7af5891a65082ad7dc6"><td class="memItemLeft" align="right" valign="top">const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a14884d253128c7af5891a65082ad7dc6">fvecs_maybe_subsample</a> (size_t d, size_t *n, size_t nmax, const float *x, bool verbose, long seed)</td></tr>
<tr class="separator:a14884d253128c7af5891a65082ad7dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8260e10cfeed08a4344b85845773e16"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#ac8260e10cfeed08a4344b85845773e16">binary_to_real</a> (size_t d, const uint8_t *x_in, float *x_out)</td></tr>
<tr class="separator:ac8260e10cfeed08a4344b85845773e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab491c9e2f77a750c9f0324bfe00e3e57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#ab491c9e2f77a750c9f0324bfe00e3e57">real_to_binary</a> (size_t d, const float *x_in, uint8_t *x_out)</td></tr>
<tr class="separator:ab491c9e2f77a750c9f0324bfe00e3e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abefd45801bab63d2eb71005ad7a51d32"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#abefd45801bab63d2eb71005ad7a51d32">hash_bytes</a> (const uint8_t *bytes, long n)</td></tr>
<tr class="separator:abefd45801bab63d2eb71005ad7a51d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad86caef545c6a7672422d7d34c03f446"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#ad86caef545c6a7672422d7d34c03f446">check_openmp</a> ()</td></tr>
<tr class="separator:ad86caef545c6a7672422d7d34c03f446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3af5769b0b649f112332a874c64d361"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3af5769b0b649f112332a874c64d361"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#aa3af5769b0b649f112332a874c64d361">get_mem_usage_kb</a> ()</td></tr>
<tr class="memdesc:aa3af5769b0b649f112332a874c64d361"><td class="mdescLeft">&#160;</td><td class="mdescRight">get current RSS usage in kB <br/></td></tr>
<tr class="separator:aa3af5769b0b649f112332a874c64d361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7466bd32de31640860393a701eaac5ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7466bd32de31640860393a701eaac5ad"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a7466bd32de31640860393a701eaac5ad">fvec_L2sqr</a> (const float *x, const float *y, size_t d)</td></tr>
<tr class="memdesc:a7466bd32de31640860393a701eaac5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Squared L2 distance between two vectors. <br/></td></tr>
<tr class="separator:a7466bd32de31640860393a701eaac5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6490f0d832462623e19a96481daeef5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6490f0d832462623e19a96481daeef5"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_inner_product</b> (const float *x, const float *y, size_t d)</td></tr>
<tr class="separator:af6490f0d832462623e19a96481daeef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a052456d4db25ce5de406794939fd0537"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a052456d4db25ce5de406794939fd0537"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_L2sqr_ny</b> (float *__restrict dis, const float *x, const float *y, size_t d, size_t ny)</td></tr>
<tr class="separator:a052456d4db25ce5de406794939fd0537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a49180ebf10e643217bbce5862c7f84"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a7a49180ebf10e643217bbce5862c7f84">fvec_norm_L2sqr</a> (const float *x, size_t d)</td></tr>
<tr class="separator:a7a49180ebf10e643217bbce5862c7f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40265aa2cbbe57e5b223c2c7dafac31f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a40265aa2cbbe57e5b223c2c7dafac31f">fvec_norms_L2</a> (float *ip, const float *x, size_t d, size_t nx)</td></tr>
<tr class="separator:a40265aa2cbbe57e5b223c2c7dafac31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abce90e9d55d6838c7a37422285192d54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abce90e9d55d6838c7a37422285192d54"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#abce90e9d55d6838c7a37422285192d54">fvec_norms_L2sqr</a> (float *ip, const float *x, size_t d, size_t nx)</td></tr>
<tr class="memdesc:abce90e9d55d6838c7a37422285192d54"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as fvec_norms_L2, but computes square norms <br/></td></tr>
<tr class="separator:abce90e9d55d6838c7a37422285192d54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d81952ec447e6886d2fd3b930fdc096"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d81952ec447e6886d2fd3b930fdc096"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_renorm_L2</b> (size_t d, size_t nx, float *x)</td></tr>
<tr class="separator:a1d81952ec447e6886d2fd3b930fdc096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40328c31abd0bbba5bd95d7de951e847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a40328c31abd0bbba5bd95d7de951e847">fvec_madd</a> (size_t n, const float *a, float bf, const float *b, float *c)</td></tr>
<tr class="separator:a40328c31abd0bbba5bd95d7de951e847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da63b8bb84460f5e8ccf8e17622cc7a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefaiss.html#a9da63b8bb84460f5e8ccf8e17622cc7a">fvec_madd_and_argmin</a> (size_t n, const float *a, float bf, const float *b, float *c)</td></tr>
<tr class="separator:a9da63b8bb84460f5e8ccf8e17622cc7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7c6da3d6915a010d5d3074d93878ce9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7c6da3d6915a010d5d3074d93878ce9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reflection</b> (const float *u, float *x, size_t n, size_t d, size_t nu)</td></tr>
<tr class="separator:ab7c6da3d6915a010d5d3074d93878ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83eae4ad08f3d1f3e7af467853d74d7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83eae4ad08f3d1f3e7af467853d74d7b"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_L2sqr_ref</b> (const float *x, const float *y, size_t d)</td></tr>
<tr class="separator:a83eae4ad08f3d1f3e7af467853d74d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a3cb6cd969528a0745764696f701c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28a3cb6cd969528a0745764696f701c8"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_inner_product_ref</b> (const float *x, const float *y, size_t d)</td></tr>
<tr class="separator:a28a3cb6cd969528a0745764696f701c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6068ba732628f61f4138d2610c2eaf3b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6068ba732628f61f4138d2610c2eaf3b"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_norm_L2sqr_ref</b> (const float *x, size_t d)</td></tr>
<tr class="separator:a6068ba732628f61f4138d2610c2eaf3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c4320937e1f2c38c8a1923bd5fb3068"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c4320937e1f2c38c8a1923bd5fb3068"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_L2sqr_ny_ref</b> (float *dis, const float *x, const float *y, size_t d, size_t ny)</td></tr>
<tr class="separator:a2c4320937e1f2c38c8a1923bd5fb3068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca22849311a991b72676be10315e2af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ca22849311a991b72676be10315e2af"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fvec_L2sqr_ny</b> (float *dis, const float *x, const float *y, size_t d, size_t ny)</td></tr>
<tr class="separator:a4ca22849311a991b72676be10315e2af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a4b9270ee589d75780566bc35bb543ddc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b9270ee589d75780566bc35bb543ddc"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>hamming_batch_size</b> = 65536</td></tr>
<tr class="separator:a4b9270ee589d75780566bc35bb543ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af64bbc47e010c9adc82dcfbcfdb00e17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af64bbc47e010c9adc82dcfbcfdb00e17"></a>
<a class="el" href="structfaiss_1_1HNSWStats.html">HNSWStats</a>&#160;</td><td class="memItemRight" valign="bottom"><b>hnsw_stats</b></td></tr>
<tr class="separator:af64bbc47e010c9adc82dcfbcfdb00e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd23fc7d944b9cfe8b498a4b35bc558"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cd23fc7d944b9cfe8b498a4b35bc558"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>read_old_fmt_hack</b> = 0</td></tr>
<tr class="separator:a8cd23fc7d944b9cfe8b498a4b35bc558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff97660fb0994bea32b9c4714e324fa0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff97660fb0994bea32b9c4714e324fa0"></a>
const int&#160;</td><td class="memItemRight" valign="bottom"><b>IO_FLAG_MMAP</b> = 1</td></tr>
<tr class="separator:aff97660fb0994bea32b9c4714e324fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa75d478d14ec1ffd7b0718adf0dab26b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa75d478d14ec1ffd7b0718adf0dab26b"></a>
const int&#160;</td><td class="memItemRight" valign="bottom"><b>IO_FLAG_READ_ONLY</b> = 2</td></tr>
<tr class="separator:aa75d478d14ec1ffd7b0718adf0dab26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0afd2e723c83893be7aff1fa644d13b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0afd2e723c83893be7aff1fa644d13b3"></a>
const int&#160;</td><td class="memItemRight" valign="bottom"><b>IO_FLAG_ONDISK_SAME_DIR</b> = 4</td></tr>
<tr class="separator:a0afd2e723c83893be7aff1fa644d13b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaacf7373287db7858299cede6cb8b7c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaacf7373287db7858299cede6cb8b7c7"></a>
<a class="el" href="structfaiss_1_1IndexIVFStats.html">IndexIVFStats</a>&#160;</td><td class="memItemRight" valign="bottom"><b>indexIVF_stats</b></td></tr>
<tr class="separator:aaacf7373287db7858299cede6cb8b7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d6b069b2590a195d078d696cba14284"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d6b069b2590a195d078d696cba14284"></a>
<a class="el" href="structfaiss_1_1IndexIVFPQStats.html">IndexIVFPQStats</a>&#160;</td><td class="memItemRight" valign="bottom"><b>indexIVFPQ_stats</b></td></tr>
<tr class="separator:a2d6b069b2590a195d078d696cba14284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefa127b38407a74770a4b7cfb50ca87d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefa127b38407a74770a4b7cfb50ca87d"></a>
<a class="el" href="structfaiss_1_1IndexPQStats.html">IndexPQStats</a>&#160;</td><td class="memItemRight" valign="bottom"><b>indexPQ_stats</b></td></tr>
<tr class="separator:aefa127b38407a74770a4b7cfb50ca87d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0192f28806f1f86d6f6ee831d739d809"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0192f28806f1f86d6f6ee831d739d809"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>distance_compute_blas_threshold</b> = 20</td></tr>
<tr class="separator:a0192f28806f1f86d6f6ee831d739d809"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree.</p>
<p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree.Multi-dimensional array class for CUDA device and host usage. Originally from Facebook's fbcunn, since added to the Torch GPU library cutorch as well.</p>
<p>Throughout the library, vectors are provided as float * pointers. Most algorithms can be optimized when several vectors are processed (added/searched) together in a batch. In this case, they are passed in as a matrix. When n vectors of size d are provided as float * x, component j of vector i is</p>
<p>x[ i * d + j ]</p>
<p>where 0 &lt;= i &lt; n and 0 &lt;= j &lt; d. In other words, matrices are always compact. When specifying the size of the matrix, we call it an n*d matrix, which implies a row-major storage.</p>
<p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. I/O functions can read/write to a filename, a file handle or to an object that abstracts the medium.</p>
<p>The read functions return objects that should be deallocated with delete. All references within these objectes are owned by the object.</p>
<p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. Definition of inverted lists + a few common classes that implement the interface.</p>
<p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. Since IVF (inverted file) indexes are of so much use for large-scale use cases, we group a few functions related to them in this small library. Most functions work both on IndexIVFs and IndexIVFs embedded within an <a class="el" href="structfaiss_1_1IndexPreTransform.html">IndexPreTransform</a>.</p>
<p>Copyright (c) Facebook, Inc. and its affiliates.</p>
<p>This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. Defines a few objects that apply transformations to a set of vectors Often these are pre-processing steps. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ac8260e10cfeed08a4344b85845773e16"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::binary_to_real </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>x_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>x_out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert binary vector to +1/-1 valued float vector.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>dimension of the vector (multiple of 8) </td></tr>
    <tr><td class="paramname">x_in</td><td>input binary vector (uint8_t table of size d / 8) </td></tr>
    <tr><td class="paramname">x_out</td><td>output float vector (float table of size d) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01564">1564</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a154a47857ed321b9db91122770a16e09"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::bincode_hist </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>codes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>hist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compute histogram of bits on a code array</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">codes</td><td>size(n, nbits / 8) </td></tr>
    <tr><td class="paramname">hist</td><td>size(nbits): nb of 1s in the array of codes </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01326">1326</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ad86caef545c6a7672422d7d34c03f446"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool faiss::check_openmp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether OpenMP annotations were respected. </p>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01596">1596</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a40328c31abd0bbba5bd95d7de951e847"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::fvec_madd </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>bf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>compute c := a + bf * b for a, b and c tables</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>size of the tables </td></tr>
    <tr><td class="paramname">a</td><td>size n </td></tr>
    <tr><td class="paramname">b</td><td>size n </td></tr>
    <tr><td class="paramname">c</td><td>restult table, size n </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils__simd_8cpp_source.html#l00588">588</a> of file <a class="el" href="utils__simd_8cpp_source.html">utils_simd.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a9da63b8bb84460f5e8ccf8e17622cc7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int faiss::fvec_madd_and_argmin </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>bf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>same as fvec_madd, also return index of the min of the result table </p>
<dl class="section return"><dt>Returns</dt><dd>index of the min of table c </dd></dl>

<p>Definition at line <a class="el" href="utils__simd_8cpp_source.html#l00675">675</a> of file <a class="el" href="utils__simd_8cpp_source.html">utils_simd.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7a49180ebf10e643217bbce5862c7f84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float faiss::fvec_norm_L2sqr </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>squared norm of a vector </p>

<p>Definition at line <a class="el" href="utils__simd_8cpp_source.html#l00515">515</a> of file <a class="el" href="utils__simd_8cpp_source.html">utils_simd.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a40265aa2cbbe57e5b223c2c7dafac31f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::fvec_norms_L2 </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>ip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>compute the L2 norms for a set of vectors</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ip</td><td>output norms, size nx </td></tr>
    <tr><td class="paramname">x</td><td>set of vectors, size nx * d </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a14884d253128c7af5891a65082ad7dc6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const float * faiss::fvecs_maybe_subsample </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>verbose</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>seed</em> = <code>1234</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>random subsamples a set of vectors if there are too many of them</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>dimension of the vectors </td></tr>
    <tr><td class="paramname">n</td><td>on input: nb of input vectors, output: nb of output vectors </td></tr>
    <tr><td class="paramname">nmax</td><td>max nb of vectors to keep </td></tr>
    <tr><td class="paramname">x</td><td>input array, size *n-by-d </td></tr>
    <tr><td class="paramname">seed</td><td>random seed to use for sampling </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>x or an array allocated with new [] with *n vectors </dd></dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01540">1540</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a9c1131631ad4314ba716372fe0d1dea6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::generalized_hammings_knn_hc </td>
          <td>(</td>
          <td class="paramtype">int_maxheap_array_t *&#160;</td>
          <td class="paramname"><em>ha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>code_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ordered</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>generalized Hamming distances (= count number of code bytes that are the same) </p>

<p>Definition at line <a class="el" href="hamming_8cpp_source.html#l00728">728</a> of file <a class="el" href="hamming_8cpp_source.html">hamming.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a0832c5ab58f4d1a340b0bde273c5b501"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::hammings </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>na</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbytespercode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hamdis_t *&#160;</td>
          <td class="paramname"><em>dis</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compute a set of Hamming distances between na and nb binary vectors</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>size na * nbytespercode </td></tr>
    <tr><td class="paramname">b</td><td>size nb * nbytespercode </td></tr>
    <tr><td class="paramname">nbytespercode</td><td>should be multiple of 8 </td></tr>
    <tr><td class="paramname">dis</td><td>output distances, size na * nb </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aef2e95991f435b0103db0efe07edff81"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::hammings_knn_hc </td>
          <td>(</td>
          <td class="paramtype">int_maxheap_array_t *&#160;</td>
          <td class="paramname"><em>ha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ncodes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ordered</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the k smallest Hamming distances for a set of binary query vectors, using a max heap. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>queries, size ha-&gt;nh * ncodes </td></tr>
    <tr><td class="paramname">b</td><td>database, size nb * ncodes </td></tr>
    <tr><td class="paramname">nb</td><td>number of database vectors </td></tr>
    <tr><td class="paramname">ncodes</td><td>size of the binary codes (bytes) </td></tr>
    <tr><td class="paramname">ordered</td><td>if != 0: order the results by decreasing distance (may be bottleneck for k/n &gt; 0.01) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="hamming_8cpp_source.html#l00517">517</a> of file <a class="el" href="hamming_8cpp_source.html">hamming.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa9ac586642ba474949a007546ab05592"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::hammings_knn_mc </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>na</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ncodes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t *&#160;</td>
          <td class="paramname"><em>distances</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>labels</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the k smallest Hamming distances for a set of binary query vectors, using counting max. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>queries, size na * ncodes </td></tr>
    <tr><td class="paramname">b</td><td>database, size nb * ncodes </td></tr>
    <tr><td class="paramname">na</td><td>number of query vectors </td></tr>
    <tr><td class="paramname">nb</td><td>number of database vectors </td></tr>
    <tr><td class="paramname">k</td><td>number of vectors/distances to return </td></tr>
    <tr><td class="paramname">ncodes</td><td>size of the binary codes (bytes) </td></tr>
    <tr><td class="paramname">distances</td><td>output distances from each query vector to its k nearest neighbors </td></tr>
    <tr><td class="paramname">labels</td><td>output ids of the k nearest neighbors to each query vector </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="hamming_8cpp_source.html#l00555">555</a> of file <a class="el" href="hamming_8cpp_source.html">hamming.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a542cf4d499962a3d7a0db924424d8870"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::handleExceptions </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; std::pair&lt; int, std::exception_ptr &gt;&gt; &amp;&#160;</td>
          <td class="paramname"><em>exceptions</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Handle multiple exceptions from worker threads, throwing an appropriate exception that aggregates the information The pair int is the thread that generated the exception </p>

<p>Definition at line <a class="el" href="FaissException_8cpp_source.html#l00035">35</a> of file <a class="el" href="FaissException_8cpp_source.html">FaissException.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="abefd45801bab63d2eb71005ad7a51d32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t faiss::hash_bytes </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>bytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A reasonable hashing function </p>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01584">1584</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1d40aec5723474516de576263cc03048"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class C &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::heap_pop </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::T *&#160;</td>
          <td class="paramname"><em>bh_val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::TI *&#160;</td>
          <td class="paramname"><em>bh_ids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Pops the top element from the heap defined by bh_val[0..k-1] and bh_ids[0..k-1]. on output the element at k-1 is undefined. </p>

<p>Definition at line <a class="el" href="Heap_8h_source.html#l00089">89</a> of file <a class="el" href="Heap_8h_source.html">Heap.h</a>.</p>

</div>
</div>
<a class="anchor" id="acbe85976d4f73309622f6b62c4d7af2b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class C &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::heap_push </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::T *&#160;</td>
          <td class="paramname"><em>bh_val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::TI *&#160;</td>
          <td class="paramname"><em>bh_ids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::T&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename C::TI&#160;</td>
          <td class="paramname"><em>ids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Pushes the element (val, ids) into the heap bh_val[0..k-2] and bh_ids[0..k-2]. on output the element at k-1 is defined. </p>

<p>Definition at line <a class="el" href="Heap_8h_source.html#l00125">125</a> of file <a class="el" href="Heap_8h_source.html">Heap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0c95ec47726f2ce3fb668dcb1f9a3317"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structfaiss_1_1Index.html">Index</a> * faiss::index_factory </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>description</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MetricType&#160;</td>
          <td class="paramname"><em>metric</em> = <code>METRIC_L2</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Build and index with the sequence of processing steps described in the string. </p>

<p>Definition at line <a class="el" href="AutoTune_8cpp_source.html#l00741">741</a> of file <a class="el" href="AutoTune_8cpp_source.html">AutoTune.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa2c6a9e87a64bba8e8014e14f70bde21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int faiss::km_update_centroids </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>assign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k_frozen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>For k-means: update stage.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>training vectors, size n * d </td></tr>
    <tr><td class="paramname">centroids</td><td>centroid vectors, size k * d </td></tr>
    <tr><td class="paramname">assign</td><td>nearest centroid for each training vector, size n </td></tr>
    <tr><td class="paramname">k_frozen</td><td>do not update the k_frozen first centroids </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>nb of spliting operations to fight empty clusters </dd></dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01078">1078</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a38bd0dde8a1b229201a5fcb64d05daa6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float faiss::kmeans_clustering </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>centroids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>simplified interface</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>dimension of the data </td></tr>
    <tr><td class="paramname">n</td><td>nb of training vectors </td></tr>
    <tr><td class="paramname">k</td><td>nb of output centroids </td></tr>
    <tr><td class="paramname">x</td><td>training set (size n * d) </td></tr>
    <tr><td class="paramname">centroids</td><td>output centroids (size k * d) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>final quantization error </dd></dl>

<p>Definition at line <a class="el" href="Clustering_8cpp_source.html#l00246">246</a> of file <a class="el" href="Clustering_8cpp_source.html">Clustering.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a880c7318971f866267a86945aaa61b17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::knn_inner_product </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ny</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float_minheap_array_t *&#160;</td>
          <td class="paramname"><em>res</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the k nearest neighors of each of the nx vectors x among the ny vector y, w.r.t to max inner product</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>query vectors, size nx * d </td></tr>
    <tr><td class="paramname">y</td><td>database vectors, size ny * d </td></tr>
    <tr><td class="paramname">res</td><td>result array, which also provides k. Sorted on output </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l00624">624</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2f803e3d3b07cfab63699c89de161237"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::knn_L2sqr </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ny</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float_maxheap_array_t *&#160;</td>
          <td class="paramname"><em>res</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as knn_inner_product, for the L2 distance </p>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l00644">644</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a5eb1701e46123827966f2a56da893d1d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::knn_L2sqr_base_shift </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ny</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float_maxheap_array_t *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>base_shift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>same as knn_L2sqr, but base_shift[bno] is subtracted to all computed distances.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base_shift</td><td>size ny </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l00664">664</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="afb68fe89ad5e948974da1b70d7b4157c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::matrix_qr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>compute the Q of the QR decomposition for m &gt; n </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>size n * m: input matrix and output Q </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l00999">999</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="afb7b33f6892678ba79aaf5e71777837c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t faiss::merge_result_table_with </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>I0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>D0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long *&#160;</td>
          <td class="paramname"><em>I1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>D1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>keep_min</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>translation</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>merge a result table into another one</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">I0,D0</td><td>first result table, size (n, k) </td></tr>
    <tr><td class="paramname">I1,D1</td><td>second result table, size (n, k) </td></tr>
    <tr><td class="paramname">keep_min</td><td>if true, keep min values, otherwise keep max </td></tr>
    <tr><td class="paramname">translation</td><td>add this value to all I1's indexes </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>nb of values that were taken from the second table </dd></dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01188">1188</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3d9c7db82d43c1f0ab1d28b92bc9fe57"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::pairwise_L2sqr </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>nq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>xq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>xb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>dis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>ldq</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>ldb</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>ldd</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compute pairwise distances between sets of vectors</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>dimension of the vectors </td></tr>
    <tr><td class="paramname">nq</td><td>nb of query vectors </td></tr>
    <tr><td class="paramname">nb</td><td>nb of database vectors </td></tr>
    <tr><td class="paramname">xq</td><td>query vectors (size nq * d) </td></tr>
    <tr><td class="paramname">xb</td><td>database vectros (size nb * d) </td></tr>
    <tr><td class="paramname">dis</td><td>output distances (size nq * nb) </td></tr>
    <tr><td class="paramname">ldq,ldb,ldd</td><td>strides for the matrices </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01021">1021</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1faa7bd079c9b1addf3058ddf882a000"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::range_search_L2sqr </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ny</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeSearchResult *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the k nearest neighors of each of the nx vectors x among the ny vector y, w.r.t to max inner product</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>query vectors, size nx * d </td></tr>
    <tr><td class="paramname">y</td><td>database vectors, size ny * d </td></tr>
    <tr><td class="paramname">radius</td><td>search radius around the x vectors </td></tr>
    <tr><td class="paramname">result</td><td>result structure </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l00944">944</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae0ee1b6fbd3d6da0f1a3550a780ca24c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::ranklist_handle_ties </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>dis</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>distances are supposed to be sorted. Sorts indices with same distance </p>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01172">1172</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8dbc652ba48d41f126b8815004899448"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t faiss::ranklist_intersection_size </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long *&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long *&#160;</td>
          <td class="paramname"><em>v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>count the number of comon elements between v1 and v2 algorithm = sorting + bissection to avoid double-counting duplicates </p>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01253">1253</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab491c9e2f77a750c9f0324bfe00e3e57"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void faiss::real_to_binary </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>x_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>x_out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert float vector to binary vector. Components &gt; 0 are converted to 1, others to 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>dimension of the vector (multiple of 8) </td></tr>
    <tr><td class="paramname">x_in</td><td>input float vector (float table of size d) </td></tr>
    <tr><td class="paramname">x_out</td><td>output binary vector (uint8_t table of size d / 8) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="utils_8cpp_source.html#l01570">1570</a> of file <a class="el" href="utils_8cpp_source.html">utils.cpp</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
